package Controle;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import modelo.ModeloTabela;
import modelo.Usuario;

/**
 *
 * @author Denize
 */
public class ControlUsuario {

    Usuario usu = new Usuario();// instanciar o produto
    Usuario modelo = new Usuario();
    Conectabanco conexusuario = new Conectabanco(); // instaniar o banco

   /* public void preencherTabela(String SQL) {
        ArrayList dados = new ArrayList();
        String[] Colunas = new String[]{"cpf", " nome"};
        conexusuario.executaSQL(SQL);
        try {
            conexusuario.rs.first();
            do {
                dados.add(new Object[]{
                            conexusuario.rs.getFloat("cpf_usuario"), conexusuario.rs.getString("nome_usuario")});
            }while  
                    (conexusuario.rs.next());
                
                } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao preencher o ArrayList!\nERRO:" + ex);
        }
    }*/


   
    public void inserirusuario(Usuario usu) {
        conexusuario.conexao();
        try {
            PreparedStatement pst = conexusuario.conn.prepareStatement(" insert into usuario(cpf_usuario,nome_usuario)" + "values(?,?)");
            pst.setFloat(1, usu.getCpf());
            pst.setString(2, usu.getNome());
            pst.execute();

            JOptionPane.showMessageDialog(null, "Nome cadastrado com sucesso!");

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Cadastrar usuário!\nERRO:" + ex);
            conexusuario.desconecta();
          

        }
    }

    public void editaUsuario(Usuario usu) {
        conexusuario.conexao();
        try {
            PreparedStatement pst = conexusuario.conn.prepareStatement(" update usuario set nome_usuario=? where cpf_usuario=?");
            pst.setString(1, usu.getNome());
            pst.setFloat(2, usu.getCpf());

            pst.execute();
            JOptionPane.showMessageDialog(null, "Usuário Alterado com sucesso!");
            pst.execute();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Alterar o usuário!\nERRO:" + ex);

        }

    }

    public void ExcluirUsuario(Usuario usu) {
        conexusuario.conexao();
        try {
            PreparedStatement pst = conexusuario.conn.prepareStatement("delete from usuario where cpf_usuario=?");
            pst.setFloat(1, usu.getCpf());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Usuário excluido com sucesso!");

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Excluir o Usuário!\nERRO:" + ex);

        }

    }

    /**
     *
     * @param modelo
     * @return
     * @throws Exception
     */
    public Usuario buscaUsuario(Usuario modelo) {
        conexusuario.conexao();
        conexusuario.executaSQL("Select * from Usuario where nome_usuario like '%" + modelo.getPesqusuario() + "%'");
        try {

            // PreparedStatement pst = conexproduto.conn.prepareStatement("Select * from Produto where nome_produto like '%" + modelo.getPesqproduto() + "%'");
            //conexproduto.rs.first();
            // conexproduto.executeQuery();
            conexusuario.rs.first();
            
            usu.setCpf(conexusuario.rs.getInt("cpf_usuario"));
            usu.setNome(conexusuario.rs.getString("nome_usuario"));
            
            conexusuario.rs.next();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao buscar o usuario!\nERRO:" + ex);
        }
         conexusuario.desconecta();
        return usu;

    }
        /*String sql = "SELECT * FROM `my estoque`.usuario";
        conexusuario.conexao();
        try {
            PreparedStatement stmt = conexusuario.conn.prepareStatement(sql);
           

            //armazena o resultado da query
            ResultSet rs = stmt.executeQuery();

            Float cpf_usuario = rs.getFloat("cpf_usuario");
            usu.setCpf(cpf_usuario);
            String nome_usuario = rs.getString("nome_usuario");
            usu.setNome(nome_usuario);
            // usu.setCpf(conexusuario.rs.getFloat("cpf_usuario"));
            //usu.setNome(conexusuario.rs.getString("nome_usuario"));

            JOptionPane.showMessageDialog(null, "Usuário encontrado com sucesso!");

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao buscar o usuário!\nERRO:" + ex);
        }
        conexusuario.desconecta();
        return usu;*/
    }


      
        
//public void PreencherTabela(String SQL) {
      //  ArrayList dados = new ArrayList();

      //  String[] Colunas = new String[]{"cpf", " nome"};
      //  conexusuario.executaSQL(SQL);
      //  try {
          //  conexusuario.rs.first();
          //  do {
              //  dados.add(new Object[]{
                          //  conexusuario.rs.getFloat("cpf_usuario"), conexusuario.rs.getString("nome_usuario")});

          //  } while (conexusuario.rs.next());
      //  } catch (SQLException ex) {
       //  /   JOptionPane.showMessageDialog(null,"Erro ao preencher o ArrayList!\nERRO:"+ ex);
            
      //  }

// String nome_produto = rs.getString("nome_fornecedor");
//    produto.setNome_produto(nome_produto);
// Float cpf_usuario = rs.getFloat("cpf_usuario");
//usu.setCpf(cpf_usuario);
//String nome_usuario = rs.getString("nome_usuario");
//usu.setNome(nome_usuario);
//return usu;
/*public Usuario buscaUsuario(Usuario modelo) {
 conexusuario.conexusuario();
 conexusuario.executaSQL("Select * from usuario where nome_usuario like '%" + modelo.getPesqusuario() + "%'");
 try {
 PreparedStatement pst = conexusuario.conn.prepareStatement("");
 pst.execute();

 conexusuario.rs.first();

 usu.setCpf(conexusuario.rs.getFloat("cpf_usuario"));
 usu.setNome(conexusuario.rs.getString("nome_usuario"));
            
 JOptionPane.showMessageDialog(null, "Usuário encontrado com sucesso!");
 } catch (SQLException ex) {
 JOptionPane.showMessageDialog(null, "Erro ao buscar o usuário!\nERRO:" + ex);
 }
 conexusuario.desconecta();
 return usu;

 }
 }*/
